package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

/**
 * 对象输出流
 * 将java中对象 序列化
 * 序列化： java对象转变成一组字节数组  输出到文件中
 */
public class ObjectOutputStramDemo {
    public static void main(String[] args) throws Exception {
        // 1 对象
        Student s= new Student("孙同学",17,"软件2401");
        String[] otherInfo= {"爱学习","内蒙古","爱好唱歌"};
        s.setOtherInfo(otherInfo);

        // 2 流
        FileOutputStream fos= new FileOutputStream("./student.obj");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
 /*
            对象输出流提供的序列化对象方法:
            void writeObject(Object obj)
            将给定的对象转换为一组可保存或传输的字节然后通过其链接的流将字节写出

            序列化对象时要求该对象对应的类必须实现接口:java.io.Serializable
            如果写出的对象对应的类没有实现该接口，那么writeObject会抛出下面异常
            java.io.NotSerializableException

         */
        oos.writeObject(s);
        oos.close();
        fos.close();
        System.out.println("对象输出完毕");



    }
}
